#include "Parameter.h"

Parameter::Parameter(const ParameterInterface& param)
{
	m_param_ptr = param.clone();
}
Parameter::Parameter(const Parameter& original)
{
	m_param_ptr = original.m_param_ptr->clone();
}
Parameter::~Parameter()
{
	delete m_param_ptr;
}
Parameter& Parameter::operator=(const Parameter& rhs)
{
	if(this!=&rhs){
		delete m_param_ptr;
		m_param_ptr = rhs.m_param_ptr->clone();
	}
	return *this;
}

double Parameter::integral(double time1,double time2) const
{
	return m_param_ptr->integral(time1,time2);
}
double Parameter::integralsqaure(double time1,double time2) const
{
	return m_param_ptr->integralsquare(time1,time2);
}
double Parameter::mean(double time1,double time2) const
{
	return m_param_ptr->integral(time1,time2)/(time2-time1);
}
double Parameter::meansqure(double time1,double time2) const
{
	return m_param_ptr->integralsquare(time1,time2)/(time2-time1);
}